07. Project instructions

The Goal of this Project

In this project, your goal is to design a path planner that is able to create smooth, safe paths for the car to follow along a 3 lane highway with traffic. A successful path planner will be able to keep inside its lane, avoid hitting other cars, and pass slower moving traffic all by using localization, sensor fusion, and map data.

Included in the submission should be a write-up, either in the README or a separate file that details how the project was completed.

A great write-up should include the rubric points as well as your description of how you addressed each point. You should include a detailed description of the code used in each step (with line-number references and code snippets where appropriate) and links to other supporting documents or external references.

All that said, please be concise! We're not looking for you to write a book, just a brief description of how you passed each rubric point, and references to the relevant code :)

The Code

You can use the project version on workspaces here or you can find the project repository here .

If you decide to work in your local setup, you can download the latest simulator here .

Your code should stand on its own as redable material. Explain in code comments, as well as in your write-up, how your code works and why you wrote it that way.

Make it easy for a reviewer to understand your code.

Accessing and using the workspace:

  • Navigate to the workspace node. If you need to test your solution, enable the GPU - otherwise, you won't be able to run the simulator. Remember to turn it off when you code your solution so that you don't run out of GPU hours.
  • Navigate to the repository CarND-Path-Planning-Project using menu on the left.
  • Complete the TODO in main.cpp and add any helper files you need using the text editor in the workspace.
  • Navigate to the project repository in the terminal.

Note : You can add any necessary helper files within the src (or other) folder by clicking on the + in the top left, selecting Create New File , and then naming your file with the relevant extension (such as .h , .hpp , .cpp , etc).

In order to build and compile the code, from within the main repository directory, you can:

  • mkdir build && cd build to create and enter the build directory
  • cmake .. && make to compile your project
  • ./path_planning to run your code

Click on the "Simulator" button in the bottom of the Udacity workspace, which will open a new virtual desktop. You should see a "Simulator" icon on the virtual desktop. Double-click the "Simulator" icon in that desktop to start the simulator.

Important: You need to open a terminal before attempting to run the simulator.

All Project instructions can be found in the README.md (you can view the instruction in an easy-to-read format by visiting the previous link.

What It Takes to Pass

Read the project rubric for details on the requirements for a passing submission.

There is no starter code provided, but you are welcome to use code from the lesson and quizzes as you like.

Evaluation

Once you have completed your project, double check the Project Rubric to make sure you have addressed all the rubric points. Your project will be evaluated by a Udacity reviewer according to that same rubric.

Your project must "meet specifications" in each category in order for your submission to pass for at least one lap around the track. If you are happy with your submission, then you are ready to submit! If you see room for improvement in any category in which you do not meet specifications, keep working!

Once you have a path planner that is able to complete at least one loop around the track and pass the rubric specifications, go ahead and submit.

Commit to GitHub

Students are highly encouraged to commit their project to a GitHub repo. To do this, you must change the upstream of the current repository and add your credentials. We have supplied a bash script to help you do this. Please open up a terminal, navigate to the project repository, and enter: ./set_git.sh , then follow the prompts. This will set the upstream remote to your own repository and add your email and username to the git configuration. At this time we are not configuring passwords, so you will need to enter your username and password for each push. Since credentials are not persistent, it will be necessary to run this script each time you open, refresh, or reset the workspace.

Ready to Submit?

When you are ready to submit, just make sure you have in your files:

  1. Write up
  2. A complete solution, with all the files needed to run your project.

If you use workspaces click on the button on the right button and follow the instruction. Alternatively, you may submit a link to your GitHub repo for the project or a zip file with your files in the last item in this lesson.

Using GitHub and Creating Effective READMEs

If you are unfamiliar with GitHub , Udacity has a brief GitHub tutorial to get you started. Udacity also provides a more detailed free course on git and GitHub .

To learn about README files and Markdown, Udacity provides a free course on READMEs , as well.

GitHub also provides a tutorial about creating Markdown files.

Project Support

If you are stuck or having difficulties with the project, don't lose hope! Remember to talk to your mentors and fellow students in your Study Group, as well as ask (and answer!) questions on Knowledge tagged with the project name. Don't forget to check out the project Q&A from the previous page as well (or visit it here )!